home *** CD-ROM | disk | FTP | other *** search
- 10 REM Computer Mortgage Program
- 20 REM Version 0.01 (C)Copyright T Herrmann 1986
- 30 REM Licensed Material - Program Property of TH
- 40 REM Author - Terry J. Herrmann
- 50 DEF SEG
- 60 KEY OFF:SCREEN 0,1:COLOR 0,3,1:WIDTH 40:CLS:LOCATE 5,19:PRINT "IBM"
- 70 LOCATE 7,12,0:PRINT "Personal Computer"
- 80 COLOR 10,0:LOCATE 10,9,0:PRINT CHR$(213)+STRING$(21,205)+CHR$(184)
- 90 LOCATE 11,9,0:PRINT CHR$(179)+" MORTGAGE "+CHR$(179)
- 100 LOCATE 12,9,0:PRINT CHR$(179)+STRING$(21,32)+CHR$(179)
- 110 LOCATE 13,9,0:PRINT CHR$(179)+" Version 0.01 "+CHR$(179)
- 120 LOCATE 14,9,0:PRINT CHR$(212)+STRING$(21,205)+CHR$(190)
- 130 COLOR 15,0:LOCATE 17,4,0:PRINT "(C) Copyright T. Herrmann 1986"
- 140 COLOR 14,0:LOCATE 23,7,0:PRINT "Press space bar to continue"
- 150 IF INKEY$ <> "" THEN GOTO 150
- 160 CMD$ = INKEY$
- 170 IF CMD$ = " " THEN GOTO 200
- 180 IF CMD$ =CHR$(27) THEN GOTO 300
- 190 GOTO 160
- 200 COLOR 15,0:CLS:DEFDBL P:DIM AMORT(500,2):SCREEN 0
- 210 DEF SEG=0
- 220 IF (PEEK(&H410) AND &H30)<>&H30 THEN COLS = 3:GOTO 240
- 230 WIDTH 80:COLS=8
- 240 DEF SEG
- 250 GOSUB 340
- 260 IF ASC(I$)=27 THEN 300
- 270 IF MID$(I$,1,1)="2" THEN GOTO 1160
- 280 IF MID$(I$,1,1)="1" THEN GOTO 600
- 290 GOTO 250
- 300 IF SAMPLES$ <> "YES" THEN GOTO 320
- 310 CHAIN "SAMPLES",1000
- 320 GOSUB 580
- 330 END
- 340 REM - MAIN OPTION MENU
- 350 CLS:COLOR 4,7 :PRINT " MORTGAGE ANALYSIS "
- 360 LOCATE 3,1:PRINT "OPTIONS - "
- 370 PRINT "1 - MORTGAGE PAYMENT COMPARISONS "
- 380 PRINT "2 - MORTGAGE AMORTIZATION"
- 390 PRINT "ESC KEY - EXIT"
- 400 PRINT""
- 410 PRINT "OPTION NUMBER (1,2, OR ESC) =====>"
- 420 PRINT "NOTE: PRESS THE ENTER KEY WHEN DONE"
- 430 PRINT ""
- 440 COLOR 0,3,1
- 450 PRINT CHR$(218)+STRING$(37,CHR$(196))+CHR$(191)
- 460 PRINT CHR$(179)+" MORTGAGE PAYMENT COMPARISONS "+CHR$(179)
- 470 PRINT CHR$(179)+" - USE THIS OPTION TO COMPARE "+CHR$(179)
- 480 PRINT CHR$(179)+" THE MONTHLY PAYMENTS OF "+CHR$(179)
- 490 PRINT CHR$(179)+" MORTGAGES AT VARIOUS RATES "+CHR$(179)
- 500 PRINT CHR$(179)+" AND PRINCIPAL AMOUNTS. "+CHR$(179)
- 510 PRINT CHR$(179)+" MORTGAGE AMORTIZATION "+CHR$(179)
- 520 PRINT CHR$(179)+" - USE THIS OPTION TO CALCULATE "+CHR$(179)
- 530 PRINT CHR$(179)+" THE PRINCIPAL AND INTEREST "+CHR$(179)
- 540 PRINT CHR$(179)+" PAID OVER ANY 12 MONTH PERIOD. "+CHR$(179)
- 550 PRINT CHR$(192)+STRING$(37,CHR$(196))+CHR$(217)
- 560 COLOR 0,7:LOCATE 8,37:PRINT " ":LOCATE 8,37
- 570 I$=INKEY$:IF I$="" THEN 570 ELSE PRINT I$;:RETURN
- 580 CLS:END
- 590 PF = AF*(RF/(1#-(1#/((1#+RF)^NF)))):RETURN
- 600 REM - mortgage comparisons
- 610 COLOR 8,4,1
- 620 CLS:PRINT " MORTGAGE PAYMENT COMPARISON PROGRAM "
- 630 LOCATE 10,1
- 640 COLOR 0,3,1
- 650 PRINT CHR$(218)+STRING$(37,CHR$(196))+CHR$(191)
- 660 PRINT CHR$(179)+" MORTGAGE PAYMENT COMPARISONS "+CHR$(179)
- 670 PRINT CHR$(179)+" - USE THIS OPTION TO COMPARE "+CHR$(179)
- 680 PRINT CHR$(179)+" THE MONTHLY PAYMENTS OF "+CHR$(179)
- 690 PRINT CHR$(179)+" MORTGAGES AT VARIOUS RATES "+CHR$(179)
- 700 PRINT CHR$(179)+" AND PRINCIPAL AMOUNTS. "+CHR$(179)
- 710 PRINT CHR$(179)+" "+CHR$(179)
- 720 PRINT CHR$(179)+" NOTE: TO SELECT A VALUE OR AMOUNT "+CHR$(179)
- 730 PRINT CHR$(179)+" ENTER THE APPROPRIATE VALUE "+CHR$(179)
- 740 PRINT CHR$(179)+" AND PRESS THE ENTER KEY. "+CHR$(179)
- 750 PRINT CHR$(192)+STRING$(37,CHR$(196))+CHR$(217)
- 760 COLOR 14,6
- 770 LOCATE 3,1:LINE INPUT "ENTER BASE MORTGAGE AMOUNT ===> ";A$
- 780 A = VAL(A$):IF A <= 0 THEN GOTO 730
- 790 AINC = 2000
- 800 LOCATE 4,1:PRINT SPC(38);
- 810 LOCATE 5,1:PRINT "(1 TO 35 PERCENT)";
- 820 LOCATE 4,1:LINE INPUT "ENTER BASE INTEREST RATE =====> ";IR$
- 830 IR = VAL(IR$):IF IR>35 OR IR<1 THEN GOTO 800
- 840 R = IR/1200:RINC = .0025/12
- 850 LOCATE 5,1:PRINT SPC(38);
- 860 LOCATE 6,1:PRINT "(1 TO 35 YEARS)";
- 870 LOCATE 5,1:LINE INPUT "ENTER NUMBER OF YEARS IN MTG => ";Y$
- 880 Y = VAL(Y$)
- 890 N = Y * 12
- 900 NF = N
- 910 IF NF>420 OR NF<1 THEN GOTO 850
- 920 CLS
- 930 COLOR 0,7:PRINT " MONTHLY MORTGAGE PAYMENT COMPARISONS "
- 940 COLOR 15,0:LOCATE 3,10:PRINT Y$+"-YEAR MORTGAGE LOAN AMOUNTS";
- 950 LOCATE 5,2:PRINT "RATES";
- 960 FOR I = 0 TO COLS
- 970 LOCATE 4,9+I*8:PRINT SPC(7):LOCATE 4,9+I*8:PRINT A+I*AINC
- 980 NEXT I
- 990 FOR I = 0 TO 14
- 1000 LOCATE 6+I,1:PRINT SPC(7):LOCATE 6+I,2
- 1010 PRINT USING "##.##";INT(((R+(I*RINC))*120000!)+.5)/100
- 1020 NEXT I
- 1030 COLOR 15,0
- 1040 FOR I = 0 TO 14
- 1050 RF = R+I*RINC:AF=1:GOSUB 590
- 1060 FOR J = 0 TO COLS
- 1070 P = PF*(A+J*AINC):P = INT((P+5.000001E-03)*100)/100
- 1080 IF P>10000 THEN LOCATE 22,1:PRINT "PAYMENTS TOO LARGE TO DISPLAY":GOTO 1130
- 1090 LOCATE 6+I,9+J*8:PRINT USING "####.##";P;
- 1100 NEXT J
- 1110 NEXT I
- 1120 PRINT " "
- 1130 PRINT "PRESS SPACE BAR TO CONTINUE";
- 1140 IF INKEY$ <> " " THEN GOTO 1140
- 1150 GOTO 250
- 1160 REM - mortgage amortization
- 1170 COLOR 7,0
- 1180 CLS
- 1190 COLOR 0,7
- 1200 LOCATE 1,1
- 1210 COLOR 8,4,1
- 1220 PRINT " MORTGAGE AMORTIZATION PROGRAM "
- 1230 LOCATE 10,1:COLOR 15,0
- 1240 COLOR 0,3,1
- 1250 PRINT CHR$(218)+STRING$(37,CHR$(196))+CHR$(191)
- 1260 PRINT CHR$(179)+" MORTGAGE AMORTIZATION "+CHR$(179)
- 1270 PRINT CHR$(179)+" - USE THIS OPTION TO CALCULATE "+CHR$(179)
- 1280 PRINT CHR$(179)+" THE PRINCIPAL AND INTEREST "+CHR$(179)
- 1290 PRINT CHR$(179)+" PAID OVER ANY 12 MONTH PERIOD. "+CHR$(179)
- 1300 PRINT CHR$(179)+" "+CHR$(179)
- 1310 PRINT CHR$(179)+" NOTE: TO SELECT A VALUE OR AMOUNT "+CHR$(179)
- 1320 PRINT CHR$(179)+" ENTER THE APPROPRIATE VALUE "+CHR$(179)
- 1330 PRINT CHR$(179)+" AND PRESS THE ENTER KEY. "+CHR$(179)
- 1340 PRINT CHR$(192)+STRING$(37,CHR$(196))+CHR$(217)
- 1350 LOCATE 3,1
- 1360 COLOR 4,7
- 1370 PRINT:INPUT" SCREEN/PRINTER OUTPUT (S/P)";O$
- 1380 IF O$="P" THEN 2110
- 1390 LINE INPUT "ENTER MORTGAGE AMOUNT ===> ";A$
- 1400 AF = VAL(A$)
- 1410 LOCATE 4,1
- 1420 PRINT " ";
- 1430 LOCATE 5,1
- 1440 PRINT "(1 TO 35 PERCENT)";
- 1450 LOCATE 4,1
- 1460 LINE INPUT "ENTER INTEREST RATE =====> ";IR$
- 1470 IR = VAL(IR$)
- 1480 IF IR>35 THEN GOTO 1410
- 1490 IF IR<1 THEN GOTO 1410
- 1500 RF = IR/1200
- 1510 LOCATE 5,1
- 1520 PRINT " ";
- 1530 LOCATE 6,1
- 1540 PRINT "(1 TO 35 YEARS)";
- 1550 LOCATE 5,1
- 1560 LINE INPUT "ENTER NUMBER OF YEARS ===> ";Y$
- 1570 Y = VAL(Y$)
- 1580 NF = Y * 12
- 1590 IF NF>420 THEN GOTO 1510
- 1600 IF NF<1 THEN GOTO 1510
- 1610 GOSUB 590
- 1620 PF = INT((PF+5.000001E-03)*100)/100
- 1630 PRINT "MONTHLY PAYMENTS ARE ====>";PF
- 1640 COLOR 13,12
- 1650 PRINT "CALCULATING AMORTIZATION"
- 1660 COLOR 15,0
- 1670 IF NF>36 THEN GOTO 1690
- 1680 FOR I = 1 TO 1000:NEXT I
- 1690 AMORT(0,1) = AF
- 1700 FOR I = 1 TO NF
- 1710 AMORT(I,2) = INT((AMORT(I-1,1)*RF+5.000001E-03)*100)/100
- 1720 AMORT(I,1) = AMORT(I-1,1)-PF+AMORT(I,2)
- 1730 NEXT I
- 1740 FOR I = 7 TO 25:LOCATE I,1:PRINT SPC(39);:NEXT I
- 1750 LOCATE 9,1
- 1760 PRINT " - 1 TO"+STR$(NF)
- 1770 PRINT " - 0 TO END AMORTIZATION";
- 1780 LOCATE 7,1
- 1790 PRINT "ENTER BEGINNING PAYMENT NUMBER"
- 1800 LINE INPUT "OF (12 MONTH MAX) PERIOD ===> ";PERIOD$
- 1810 PD= VAL(PERIOD$)
- 1820 IF PD <> 0 THEN GOTO 1840
- 1830 IF PERIOD$ <> "0" THEN GOTO 1780
- 1840 IF PD=0 THEN GOTO 250
- 1850 IF PD>NF THEN GOTO 1780
- 1860 IF PD<0 THEN GOTO 1780
- 1870 PRINT:PRINT:INPUT "FOR HOW MANY MONTHS =====> ";MO
- 1880 LOCATE 7,1
- 1890 PRINT SPC(39)
- 1900 PRINT SPC(39)
- 1910 LOCATE 9,1
- 1920 PRINT "PYMNT PRINCIPAL INTEREST BALANCE"
- 1930 TINT = 0
- 1940 FOR I = PD TO PD+MO-1
- 1950 IF I> NF THEN GOTO 1990
- 1960 TINT = TINT + AMORT(I,2)
- 1970 PRINT USING "### ";I;
- 1980 PRINT USING " ######.##";PF-AMORT(I,2);AMORT(I,2);AMORT(I,1)
- 1990 NEXT I
- 2000 PRINT " "
- 2010 PRINT "INTEREST FOR";MO;"PERIODS =";
- 2020 PRINT USING "######.## ";TINT
- 2030 LOCATE 25,1
- 2040 PRINT "PRESS SPACE BAR TO CONTINUE";
- 2050 LOCATE ,,0
- 2060 IF INKEY$ <> "" THEN GOTO 2060
- 2070 CMD$ = INKEY$
- 2080 IF CMD$ = " " THEN GOTO 1740
- 2090 IF CMD$ =CHR$(27) THEN GOTO 300
- 2100 GOTO 2070
- 2110 LINE INPUT "ENTER MORTGAGE AMOUNT ===> ";A$
- 2120 LPRINT:LPRINT"MORTGAGE AMOUNT => $";A$
- 2130 AF = VAL(A$)
- 2140 LOCATE 6,1
- 2150 PRINT " ";
- 2160 LOCATE 7,1
- 2170 PRINT "(1 TO 35 PERCENT)";
- 2180 LOCATE 6,1
- 2190 LINE INPUT "ENTER INTEREST RATE =====> ";IR$
- 2200 LPRINT:LPRINT"INTEREST RATE ===> ";IR$;"%"
- 2210 IR = VAL(IR$)
- 2220 IF IR>35 THEN GOTO 2140
- 2230 IF IR<1 THEN GOTO 2140
- 2240 RF = IR/1200
- 2250 LOCATE 7,1
- 2260 PRINT " ";
- 2270 LOCATE 8,1
- 2280 PRINT "(1 TO 35 YEARS)";
- 2290 LOCATE 7,1
- 2300 LINE INPUT "ENTER NUMBER OF YEARS ===> ";Y$
- 2310 LPRINT"# YEARS OF MORT.=> ";Y$
- 2320 Y = VAL(Y$)
- 2330 NF = Y * 12
- 2340 IF NF>420 THEN GOTO 2250
- 2350 IF NF<1 THEN GOTO 2250
- 2360 GOSUB 590
- 2370 PF = INT((PF+5.000001E-03)*100)/100
- 2380 PRINT "MONTHLY PAYMENTS ARE ====>";PF
- 2390 LPRINT"MONTHLY PAYMENT => $";PF
- 2400 COLOR 13,12
- 2410 PRINT "CALCULATING AMORTIZATION"
- 2420 COLOR 15,0
- 2430 IF NF>36 THEN GOTO 2450
- 2440 FOR I = 1 TO 1000:NEXT I
- 2450 AMORT(0,1) = AF
- 2460 FOR I = 1 TO NF
- 2470 AMORT(I,2) = INT((AMORT(I-1,1)*RF+5.000001E-03)*100)/100
- 2480 AMORT(I,1) = AMORT(I-1,1)-PF+AMORT(I,2)
- 2490 NEXT I
- 2500 FOR I = 7 TO 25:LOCATE I,1:PRINT SPC(39);:NEXT I
- 2510 LOCATE 9,1
- 2520 PRINT " - 1 TO"+STR$(NF)
- 2530 PRINT " - 0 TO END AMORTIZATION";
- 2540 LOCATE 7,1
- 2550 PRINT "ENTER BEGINNING PAYMENT NUMBER"
- 2560 LINE INPUT "OF (12 MONTH MAX) PERIOD ===> ";PERIOD$
- 2570 PD= VAL(PERIOD$)
- 2580 IF PD <> 0 THEN GOTO 2600
- 2590 IF PERIOD$ <> "0" THEN GOTO 2540
- 2600 IF PD=0 THEN GOTO 250
- 2610 IF PD>NF THEN GOTO 2540
- 2620 IF PD<0 THEN GOTO 2540
- 2630 PRINT:PRINT:INPUT "FOR HOW MANY MONTHS =====> ";MO
- 2640 LOCATE 7,1
- 2650 PRINT SPC(39)
- 2660 PRINT SPC(39)
- 2670 LOCATE 9,1
- 2680 LPRINT:LPRINT "PYMNT PRINCIPAL INTEREST BALANCE"
- 2690 TINT = 0
- 2700 FOR I = PD TO PD+MO-1
- 2710 IF I> NF THEN GOTO 2750
- 2720 TINT = TINT + AMORT(I,2)
- 2730 LPRINT USING "### ";I;
- 2740 LPRINT USING " ######.##";PF-AMORT(I,2);AMORT(I,2);AMORT(I,1)
- 2750 NEXT I
- 2760 LPRINT " "
- 2770 LPRINT "INTEREST FOR";MO;"PERIODS =";
- 2780 LPRINT USING "######.## ";TINT
- 2790 LOCATE 25,1
- 2800 PRINT "PRESS SPACE BAR TO CONTINUE";
- 2810 LOCATE ,,0
- 2820 IF INKEY$ <> "" THEN GOTO 2820
- 2830 CMD$ = INKEY$
- 2840 IF CMD$ = " " THEN GOTO 2500
- 2850 IF CMD$ =CHR$(27) THEN GOTO 300
- 2860 GOTO 2830